package com.zggk.iroad.greendao;

import java.util.Map;

import org.greenrobot.greendao.AbstractDao;
import org.greenrobot.greendao.AbstractDaoSession;
import org.greenrobot.greendao.database.Database;
import org.greenrobot.greendao.identityscope.IdentityScopeType;
import org.greenrobot.greendao.internal.DaoConfig;

import com.zggk.iroad.db.BhInfo;
import com.zggk.iroad.db.BhLxInfo;
import com.zggk.iroad.db.CzfaInfo;
import com.zggk.iroad.db.DcLxInfo;
import com.zggk.iroad.db.DieaseInfo;
import com.zggk.iroad.db.HandleInfo;
import com.zggk.iroad.db.LogInfo;
import com.zggk.iroad.db.LxInfo;
import com.zggk.iroad.db.User;
import com.zggk.iroad.db.XcXxInfo;

import com.zggk.iroad.greendao.BhInfoDao;
import com.zggk.iroad.greendao.BhLxInfoDao;
import com.zggk.iroad.greendao.CzfaInfoDao;
import com.zggk.iroad.greendao.DcLxInfoDao;
import com.zggk.iroad.greendao.DieaseInfoDao;
import com.zggk.iroad.greendao.HandleInfoDao;
import com.zggk.iroad.greendao.LogInfoDao;
import com.zggk.iroad.greendao.LxInfoDao;
import com.zggk.iroad.greendao.UserDao;
import com.zggk.iroad.greendao.XcXxInfoDao;

// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.

/**
 * {@inheritDoc}
 * 
 * @see org.greenrobot.greendao.AbstractDaoSession
 */
public class DaoSession extends AbstractDaoSession {

    private final DaoConfig bhInfoDaoConfig;
    private final DaoConfig bhLxInfoDaoConfig;
    private final DaoConfig czfaInfoDaoConfig;
    private final DaoConfig dcLxInfoDaoConfig;
    private final DaoConfig dieaseInfoDaoConfig;
    private final DaoConfig handleInfoDaoConfig;
    private final DaoConfig logInfoDaoConfig;
    private final DaoConfig lxInfoDaoConfig;
    private final DaoConfig userDaoConfig;
    private final DaoConfig xcXxInfoDaoConfig;

    private final BhInfoDao bhInfoDao;
    private final BhLxInfoDao bhLxInfoDao;
    private final CzfaInfoDao czfaInfoDao;
    private final DcLxInfoDao dcLxInfoDao;
    private final DieaseInfoDao dieaseInfoDao;
    private final HandleInfoDao handleInfoDao;
    private final LogInfoDao logInfoDao;
    private final LxInfoDao lxInfoDao;
    private final UserDao userDao;
    private final XcXxInfoDao xcXxInfoDao;

    public DaoSession(Database db, IdentityScopeType type, Map<Class<? extends AbstractDao<?, ?>>, DaoConfig>
            daoConfigMap) {
        super(db);

        bhInfoDaoConfig = daoConfigMap.get(BhInfoDao.class).clone();
        bhInfoDaoConfig.initIdentityScope(type);

        bhLxInfoDaoConfig = daoConfigMap.get(BhLxInfoDao.class).clone();
        bhLxInfoDaoConfig.initIdentityScope(type);

        czfaInfoDaoConfig = daoConfigMap.get(CzfaInfoDao.class).clone();
        czfaInfoDaoConfig.initIdentityScope(type);

        dcLxInfoDaoConfig = daoConfigMap.get(DcLxInfoDao.class).clone();
        dcLxInfoDaoConfig.initIdentityScope(type);

        dieaseInfoDaoConfig = daoConfigMap.get(DieaseInfoDao.class).clone();
        dieaseInfoDaoConfig.initIdentityScope(type);

        handleInfoDaoConfig = daoConfigMap.get(HandleInfoDao.class).clone();
        handleInfoDaoConfig.initIdentityScope(type);

        logInfoDaoConfig = daoConfigMap.get(LogInfoDao.class).clone();
        logInfoDaoConfig.initIdentityScope(type);

        lxInfoDaoConfig = daoConfigMap.get(LxInfoDao.class).clone();
        lxInfoDaoConfig.initIdentityScope(type);

        userDaoConfig = daoConfigMap.get(UserDao.class).clone();
        userDaoConfig.initIdentityScope(type);

        xcXxInfoDaoConfig = daoConfigMap.get(XcXxInfoDao.class).clone();
        xcXxInfoDaoConfig.initIdentityScope(type);

        bhInfoDao = new BhInfoDao(bhInfoDaoConfig, this);
        bhLxInfoDao = new BhLxInfoDao(bhLxInfoDaoConfig, this);
        czfaInfoDao = new CzfaInfoDao(czfaInfoDaoConfig, this);
        dcLxInfoDao = new DcLxInfoDao(dcLxInfoDaoConfig, this);
        dieaseInfoDao = new DieaseInfoDao(dieaseInfoDaoConfig, this);
        handleInfoDao = new HandleInfoDao(handleInfoDaoConfig, this);
        logInfoDao = new LogInfoDao(logInfoDaoConfig, this);
        lxInfoDao = new LxInfoDao(lxInfoDaoConfig, this);
        userDao = new UserDao(userDaoConfig, this);
        xcXxInfoDao = new XcXxInfoDao(xcXxInfoDaoConfig, this);

        registerDao(BhInfo.class, bhInfoDao);
        registerDao(BhLxInfo.class, bhLxInfoDao);
        registerDao(CzfaInfo.class, czfaInfoDao);
        registerDao(DcLxInfo.class, dcLxInfoDao);
        registerDao(DieaseInfo.class, dieaseInfoDao);
        registerDao(HandleInfo.class, handleInfoDao);
        registerDao(LogInfo.class, logInfoDao);
        registerDao(LxInfo.class, lxInfoDao);
        registerDao(User.class, userDao);
        registerDao(XcXxInfo.class, xcXxInfoDao);
    }
    
    public void clear() {
        bhInfoDaoConfig.clearIdentityScope();
        bhLxInfoDaoConfig.clearIdentityScope();
        czfaInfoDaoConfig.clearIdentityScope();
        dcLxInfoDaoConfig.clearIdentityScope();
        dieaseInfoDaoConfig.clearIdentityScope();
        handleInfoDaoConfig.clearIdentityScope();
        logInfoDaoConfig.clearIdentityScope();
        lxInfoDaoConfig.clearIdentityScope();
        userDaoConfig.clearIdentityScope();
        xcXxInfoDaoConfig.clearIdentityScope();
    }

    public BhInfoDao getBhInfoDao() {
        return bhInfoDao;
    }

    public BhLxInfoDao getBhLxInfoDao() {
        return bhLxInfoDao;
    }

    public CzfaInfoDao getCzfaInfoDao() {
        return czfaInfoDao;
    }

    public DcLxInfoDao getDcLxInfoDao() {
        return dcLxInfoDao;
    }

    public DieaseInfoDao getDieaseInfoDao() {
        return dieaseInfoDao;
    }

    public HandleInfoDao getHandleInfoDao() {
        return handleInfoDao;
    }

    public LogInfoDao getLogInfoDao() {
        return logInfoDao;
    }

    public LxInfoDao getLxInfoDao() {
        return lxInfoDao;
    }

    public UserDao getUserDao() {
        return userDao;
    }

    public XcXxInfoDao getXcXxInfoDao() {
        return xcXxInfoDao;
    }

}
